package cn.tedu.util.cn.tedu.design;

public class Test4 {
    public static void main(String[] args) {
        Student s=Student.get1();
        Student s1=Student.get1();
        System.out.println(s);
        System.out.println(s1);
    }
}
//懒汉式  --按需加载 -线程安全的解决方案
class Student {
    //1.私有化构造方法
    private Student() {
    }

    //2.给外界new一个
    //共享资源被多条语句操作了，一定有安全隐患--需要加锁（锁对象必须是类名.class）
    static private Student S;

    //3.给外界返回s  --按需加载
    //静态的同步方法，自动分配的锁对象是类名.class
    static public Student get1() {
        //静态资源的锁对象必须是类名.class
//        synchronized (Student.class){
        if (S == null) {//判断有没有new过，没有new过默认为null
            S = new Student();
        }
            return S;
    }
}
//}